package com.juzi.arraylist;

import java.util.ArrayList;

/**
    目标：能够使用泛型的Arraylist集合操作的数据类型
 */

public class ArrayListDemo2 {

    //泛型概述
    //ArrayList<E>：其实就是一个泛型类，可以在编译阶段约束集合对象只能操作某种数据类型。
    //举例：
    //ArrayList<String> ：此集合只能操作字符串类型的元素。
    //ArrayList<Integer>：此集合只能操作整数类型的元素。
    //注意：泛型只能支持引用数据类型，不支持基本数据类型。
    public static void main(String[] args) {
//        ArrayList<String> list = new ArrayList<String>();    //JDK1.7开始，泛型后面的类型申明可以不写
//        ArrayList<String> list = new ArrayList<>();    //JDK1.7开始，泛型后面的类型申明可以不写
        //此集合只能操作字符串类型的元素
        ArrayList<String> list = new ArrayList<String>();    //JDK1.7开始，泛型后面的类型申明可以不写

        list.add("Java");
        list.add("C++");

        ArrayList<Integer> list2 = new ArrayList<>();//此集合只能操作整数类型的元素。

        list2.add(23);
        list2.add(238);

        ArrayList<Object> list3 = new ArrayList();//添加所有类型
        list3.add(12);
        list3.add(12.6);
        list3.add("Java");
        list3.add('J');


        System.out.println(list);
        System.out.println(list2);
        System.out.println(list3);
    }
}
//1、怎么去统一ArrayList集合操作的元素类型，泛型需要注意什么？
//使用泛型：<数据类型>
//创建集合对象都应该使用泛型。
//ArrayList<String> list1 = new  ArrayList();
//泛型只能支持引用数据类型，不支持基本数据类型。